package academic.ui.client;

import java.util.ArrayList;

import ecommerce.soco.shared.*;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.ui.HasText;

public interface CustomerServiceAsync {

	
	public void getCurrentCustomer(AsyncCallback<GWT_Customer> asyncCallback);

	public void getDealsPurchasedByCustomer(
			AsyncCallback<ArrayList<GWT_Purchase>> asyncCallback);

	public void getGiftsPurchasedByCustomer(
			AsyncCallback<ArrayList<GWT_Purchase>> asyncCallback);
	
	public void login(String username, String passwd,
			AsyncCallback<Boolean> asyncCallback);


	public void registerCustomer(GWT_Customer gwt_Customer, Boolean loginIfUserExists,
			AsyncCallback<Integer> asyncCallback);

	public void updateLocation(GWT_Customer customerUpdateAddress,
			AsyncCallback<Boolean> asyncCallback);

	public void updatePersonalInfo(GWT_Customer customerUpdatePersonal,
			AsyncCallback<Boolean> asyncCallback);

	public void updateName(String text, AsyncCallback<Boolean> asyncCallback);

	public void updateEmail(String text, AsyncCallback<Boolean> asyncCallback);

	public void updatePasswd(String currentPasswdValue,
			String newPasswdValue, AsyncCallback<Boolean> asyncCallback);

	public void emailPasswordIfValid(String recoverPassEmail,
			AsyncCallback<Boolean> asyncCallback);
	
	public void getGroupsByCustomer(AsyncCallback<ArrayList<GWT_Group>> groups	);
}
